'''
开始时间：2019/05/31

项目说明：
这是一个模拟交易所的项目，即是先编写一个简单的交易所，然后编写虚假用户，让虚拟用户在交易所中进行交易。
为什么要做这样一个项目，想法从《复杂经济学》而来，里面20世界80年代有一位计算机科学及就利用类似的编程来
模拟股票市场，最终发现，模拟的市场也是类似真实的市场，说明，市场中的人的改变也会改变市场本身，因为交易者
本来就是市场的一部分。

一，参与模拟交易所的用户也要模拟真实世界的投资者
    1，投资者中70%为散户，20%为中产用户，10%为大庄
    2，在散户中，有20%的流动性，即会有20%的投资者破产出局，过一段时间也会有20%散户新增进来
        中产有10%的流动性，大庄有5%的流动性
    3， 模拟交易所有0.1%的概率会发生，正/负方向的"黑天鹅"事件，"黑天鹅"事件会导致市场价格短时间内剧烈波动

二，交易所的数据处理
    1，模拟交易所的数据会实时保存起来，供模拟量化/机器学习/数据分析的使用
    2，因意外事件导致程序崩溃，模拟交易所也能从历史数据的基础上，还原当时的交易情景

架构设计：
1，单台电脑运行即可，不需要网络通信，网络通信会增加很多复杂度
2，使用基类的设计会更方便，每一类人都是一个基类
3，交易所和用户分别是不同的进程
4，进程间的通信看情况选择


交易所说明：
1，交易所使用golang来开发
2，交易所开出一个接口，负责发送行情和接收下单
3，交易所保存一份用户名单，名单内有用户的持仓/冻结资产/现金/总资产的信息
4，每个交易窗口都有买卖各10档行情，行情每更新一次，交易所就保存持久化一次到硬盘，然后再把行情发送出去。
5，K线的合成就由交易所来做，用户通过订阅指定的行情周期即可，一次做好终生无忧，用户端只需专注于逻辑的编写即可

投资者说明：
1，投资者接口有：买卖撤下单/持仓信息/冻结资产/现金资产/总资产/各周期的K线行情
2，投资者有共同的接口基类
3，每一类的投资者都有一个基类
4，投资者账户信息会持久化到本地
5，投资者使用python来开发

'''